A Dynamic Instrumentation Approach to Software Transactional Memory
نویسنده
چکیده
A Dynamic Instrumentation Approach to Software Transactional Memory Marek Olszewski Master of Applied Science Graduate Department of Electrical and Computer Engineering University of Toronto 2007 With the advent of chip-multiprocessors, we are faced with the challenge of parallelizing performance-critical software. Transactional memory has been proposed as a promising programming model, with software transactional memory (STM) being especially compelling for today’s use. However, in addition to high overheads, existing STMs are limited to either managed languages or intrusive APIs. Furthermore, transactions in STMs cannot normally contain calls to unobservable code such as shared libraries or system calls. In this dissertation we present JudoSTM, a novel dynamic binary-rewriting approach to implementing STM that supports C and C++ code. By using value-based conflict detection, JudoSTM additionally supports the transactional execution of both (i) irreversible system calls and (ii) code that contains locks. We lower overhead through several novel optimizations that improve invisible-reader and validate/commit performance. We show that our approach performs comparably to RSTM—demonstrating that a dynamic binary-rewriting approach to implementing STM is an interesting alternative.
منابع مشابه
Avoiding Publication and Privatization Problems on Software Transactional Memory
This paper presents a new approach to exclude problems arising from dynamically switching between protected concurrent and unprotected single-threaded use of shared data when using software transactional memory in OO languages such as Java. The approach is based on a simple but effective programming model separating transactions from non-transactional operation. It prevents the application prog...
متن کاملDynamic Identification of Shared Transactional Locations
Hardware TM systems execute user code within an atomic{} delimiter without any instrumentation. Software transactional memory systems require complex sequences of operations to be executed on the memory locations shared by transactions, but typically not on unshared locations, even if these are accessed within the scope of a transaction. Lack of identification of such instructions introduces a ...
متن کاملParallelize the Runtime Checks – Not the Application
Sequential and parallel applications are both prone to security and dependability bugs. Compilers can reduce the impact of these bugs by instrumenting runtime checks into the generated code. These runtime checks can have a dramatic negative impact on the performance of an application. For instance, our measurements show that compiler generated array-bounds checks can increase the application’s ...
متن کاملSandboxing for Software Transactional Memory with Deferred Updates
Software transactional memory implementations which allow transactions to work on inconsistent states of shared data, risk to cause application visible errors such as memory access violations or endless loops. Hence, many implementations rely on repeated incremental validation of every read of the transaction to always guarantee for a consistent view of shared data. Because this eager validatio...
متن کاملCost of Concurrency in Hybrid Transactional Memory
State-of-the-art software transactional memory (STM) implementations achieve good performance by carefully avoiding the overhead of incremental validation (i.e., re-reading previously read data items to avoid inconsistency) while still providing progressiveness (allowing transactional aborts only due to data conflicts). Hardware transactional memory (HTM) implementations promise even better per...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2007